package immutableclass;

import java.util.ArrayList;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;

public final class ImmutableEchiquier {

    public enum Case {

        a1, b1, c1, d1, e1, f1, g1, h1, a2, b2, c2, d2, e2, f2, g2, h2, a3, b3, c3, d3, e3, f3, g3,
        h3, a4, b4, c4, d4, e4, f4, g4, h4, a5, b5, c5, d5, e5, f5, g5, h5, a6, b6, c6, d6, e6, f6,
        g6, h6, a7, b7, c7, d7, e7, f7, g7, h7, a8, b8, c8, d8, e8, f8, g8, h8
    }
    private final Case _case;
    private static Map<Case, ImmutableEchiquier> table = new EnumMap<Case, ImmutableEchiquier>(
            Case.class);
    private static final List<ImmutableEchiquier> protoEchiquer = new ArrayList<ImmutableEchiquier>();

    private ImmutableEchiquier(final Case _case) {
        this._case = _case;
    }


    static {
        for (Case _case : Case.values()) {
            protoEchiquer.add(new ImmutableEchiquier(_case));
        }
    }


    static { for (Case _case : Case.values()) {
            table.put(_case, new ImmutableEchiquier(_case));
        }
        for (Case _case : Case.values()) {
            table.put(_case, new ImmutableEchiquier(_case));
        }
    }

    public static ArrayList<ImmutableEchiquier> nouvelEchiquier() {
        return new ArrayList<ImmutableEchiquier>(protoEchiquer);
    }

    public static ImmutableEchiquier valueOf(Case _case) {
        return table.get(_case);
    }

    public Case get_case() {
        return _case;
    }
}